package cn.biplam.front.template.base;

import cn.biplam.common.tools.TOOLS;
import cn.biplam.common.wrapper.ErrorMessage;
import cn.biplam.front.html.HtmlInput;
import cn.biplam.front.html.base.HtmlWindow;
import cn.biplam.front.html.base.Const.Float_Type;
import cn.biplam.front.html.base.Const.Window_Event;

/**
 * 无标题文本输入框模版<br>
 * 用于创建指定大小的无标题文本输入框<br>
 * <ul>用法
 *  <li> new SimleInput("名称","大小","值") 创建文本输入框
 *  <li> this.get() 获取文本输入框
 * <ul> 
 * @author XiaoRuxing 2009-6-20下午09:31:33
 * @version 1.0
 */
public class SimpleInput {

	private HtmlInput input;
	/** 输入框的最大长度 */
	private int maxLength=-1;

	/**
	 * 传入名称和大小创建文本框
	 * @param sName 名称
	 * @param size 大小
	 * @throws ErrorMessage
	 */
	public SimpleInput(String sName,String size) throws ErrorMessage{
		this(sName,size,null);
	}
	
	/**
	 * 传入名称、大小和值创建文本框
	 * @param sName 名称
	 * @param size  大小
	 * @param value 值
	 * @throws ErrorMessage
	 */
	public SimpleInput(String sName,String size,String value) throws ErrorMessage{
		_createText(sName, size, value,false);
	}
	
	/**
	 * 传入名称、大小和值创建文本框
	 * @param sName 名称
	 * @param size  大小
	 * @param value 值
	 * @param maxLength 输入框最大容量(字符数)
	 * @throws ErrorMessage
	 */
	public SimpleInput(String sName,String size,String value,
			int maxLength) throws ErrorMessage{
		this(sName, size, value,false,maxLength);
	}
	
	/**
	 * 传入名称、大小和值创建文本框
	 * @param sName 名称
	 * @param size  大小
	 * @param value 值
	 * @param isReadOnly 是否只读
	 * @throws ErrorMessage
	 */
	public SimpleInput(String sName,String size,String value,boolean isReadOnly) throws ErrorMessage{
		_createText(sName, size, value,isReadOnly);
	}

	/**
	 * 传入名称、大小和值创建文本框
	 * @param sName 名称
	 * @param size  大小
	 * @param value 值
	 * @param maxLength 输入框最大容量(字符数)
	 * @throws ErrorMessage
	 */
	public SimpleInput(String sName,String size,String value,boolean isReadOnly,
			int maxLength) throws ErrorMessage{
		this.maxLength = maxLength;
		_createText(sName, size, value,isReadOnly);
	} 
	
	/**
	 * 创建文本输入框
	 * @throws ErrorMessage
	 */
	private void _createText(String sName,String size,String value,boolean isReadOnly) throws ErrorMessage{
		int textSize=TOOLS.stringToInt(size);
		if(textSize<1){
			textSize=20;
		}
		this.input=new HtmlInput(null,"ii",sName,value);
		this.input.setSize(textSize);
		if(maxLength>0){
			this.input.setMaxLength(maxLength);
			String script = 
				"while(value.replace(/[^\\x00-\\xff]/g,'**').length>maxLength)value=value.slice(0,-1)";
			this.input.bind(Window_Event.OnBlur, 
					script);
		}
		this.input.setFloat(Float_Type.Left);
		this.input.setReadOnly(isReadOnly);
	}
	
	/**
	 * 获取输入框显示长度
	 * @return
	 */
	public int getLength(){
		return  this.input.getSize();
	}
	
	/**
	 * 获取文本输入框
	 * @return
	 */
	public HtmlWindow get(){
		return this.input;
	}
}
